/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.com.nextel.idioma;

import com.mot.iden.zip.ZipEntry;
import com.mot.iden.zip.ZipInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreException;
import pe.com.nextel.http.MensajeHttp;
import pe.com.nextel.http.XMLListener;
import pe.com.nextel.rms.DataInputStreamX;
import pe.com.nextel.rms.RecordStoreInputStream;
import pe.com.nextel.util.HashMap;
import pe.com.nextel.util.Iterator;

/**
 *
 * @author wpalacios
 */
public class IdiomaManager {

    private final static IdiomaManager bean = new IdiomaManager();
    public final HashMap hasMap = new HashMap();

    //public final static String NOMBRE = "NOMBRE";
    
    //***** MVCUSUARIO *****
    public final static String JAVA_USUARIO = "JAVA_USUARIO";
    public final static String JAVA_LOGIN = "JAVA_LOGIN";
    public final static String JAVA_CLAVE = "JAVA_CLAVE";   
    public final static String JAVA_CONFIGURACION = "JAVA_CONFIGURACION";
    public final static String JAVA_INGRESO = "JAVA_INGRESO";
    public final static String JAVA_EMPRESA = "JAVA_EMPRESA";
    public final static String JAVA_MANTENIMIENTO = "JAVA_MANTENIMIENTO";

    //***** MVCMENU *****
    public final static String JAVA_INICIAR = "JAVA_INICIAR";
    public final static String JAVA_SINCRONIZAR = "JAVA_SINCRONIZAR";
    public final static String JAVA_LISTAR_CUENTA = "JAVA_LISTAR_CUENTA";
    public final static String JAVA_ENVIOS = "JAVA_ENVIOS";
    public final static String JAVA_CONSOLIDADO = "JAVA_CONSOLIDADO";
    public final static String JAVA_EFICIENCIA = "JAVA_EFICIENCIA";
    public final static String JAVA_STOCK = "JAVA_STOCK";
    public final static String JAVA_ADDYUPDSTOCK = "JAVA_ADDYUPDSTOCK";
    public final static String JAVA_TITULO = "JAVA_TITULO";


    //MVCREPORTE
    public final static String JAVA_TOTAL = "JAVA_TOTAL";
    public final static String JAVA_ATENDIDO = "JAVA_ATENDIDO";


    //MVCRUTADETALLE - MVCESTADO
    public final static String JAVA_NO_VISITA = "JAVA_NO_VISITA";

    //MVCESTADO
    public final static String JAVA_FOTO = "JAVA_FOTO";
    public final static String JAVA_PRINCIPAL = "JAVA_PRINCIPAL";
    public final static String JAVA_ESTADO = "JAVA_ESTADO";

    //MVCENTREGA
    public final static String JAVA_ENTREGA = "JAVA_ENTREGA";

    //MVCMOTIVO
    public final static String JAVA_MOTIVO = "JAVA_MOTIVO";
   
    //MVCRUTABUSQUEDA
    public final static String JAVA_NO_ATENDIDO = "JAVA_NO_ATENDIDO";
    public final static String JAVA_BUSCAR_RUTAS = "JAVA_BUSCAR_RUTAS";

    //MVCRUTABUSQUEDA - RUTADETALLE
    public final static String JAVA_NOMBRE = "JAVA_NOMBRE";
    public final static String JAVA_CODIGO = "JAVA_CODIGO";
    public final static String JAVA_DETALLE = "JAVA_DETALLE";    
    public final static String JAVA_RUTA = "JAVA_RUTA";  
    public final static String JAVA_TOMAR = "JAVA_TOMAR";

    
    //*****BOTONES DE MENU DE APLICACION*****
    //public final static String JAVA_ENVIAR = "JAVA_ENVIAR";
    public final static String JAVA_AVANCE = "JAVA_AVANCE";
    public final static String JAVA_SEGUIR = "JAVA_SEGUIR";
    public final static String JAVA_GRABAR = "JAVA_GRABAR";
    public final static String JAVA_ATRAS = "JAVA_ATRAS";
    public final static String JAVA_SALIR = "JAVA_SALIR";
    public final static String JAVA_BUSCAR = "JAVA_BUSCAR";
    public final static String JAVA_AYUDA = "JAVA_AYUDA";

    //*****REFACTOR**
    public final static String JAVA_CANCELAR = "JAVA_CANCELAR";
    public final static String JAVA_SELECCION = "JAVA_SELECCION";
    public final static String JAVA_SI = "JAVA_SI";
    public final static String JAVA_NO = "JAVA_NO";
    public final static String JAVA_VERSION = "JAVA_VERSION";
    public final static String JAVA_MENSAJE = "JAVA_MENSAJE";


    //*******CONTROl RUTA
    public final static String JAVA_ACTIVIDAD_COMPLETA =  "JAVA_ACTIVIDAD_COMPLETA";
    public final static String JAVA_NO_ENCONTRARON_RESULTADOS = "JAVA_NO_ENCONTRARON_RESULTADOS";
    public final static String JAVA_DEBE_SINCRONIZAR = "JAVA_DEBE_SINCRONIZAR";
    public final static String JAVA_GENERAL = "JAVA_GENERAL"; 
    public final static String JAVA_ESPERE_PORFAVOR = "JAVA_ESPERE_PORFAVOR";



    //********* CONTROL USUARIO
    public final static String JAVA_USUARIO_PASS_INVALIDO  = "JAVA_USUARIO_PASS_INVALIDO";
    public final static String JAVA_USUARIO_PASS_INVALIDO_CODIGO = "JAVA_USUARIO_PASS_INVALIDO_CODIGO";
    public final static String JAVA_NO_CONEXION_SERVIDOR = "JAVA_NO_CONEXION_SERVIDOR";
    public final static String JAVA_DATA_COMPLETA = "JAVA_DATA_COMPLETA";
    public final static String JAVA_BIENVENIDO = "JAVA_BIENVENIDO";


    //*****MVCAMANTENIMIENNTO
    public final static String JAVA_INGRESE_DATOS = "JAVA_INGRESE_DATOS";
    public final static String JAVA_REGISTRADO = "JAVA_REGISTRADO";
    public final static String JAVA_ATENCION_BORRAR_INFORMACION = "JAVA_ATENCION_BORRAR_INFORMACION";
    public final static String JAVA_ATENCION_ENVIARA_REGISTRO = "JAVA_ATENCION_ENVIARA_REGISTRO";
    public final static String JAVA_INGRESE_CAMPOS = "JAVA_INGRESE_CAMPOS";


    //******CONTROL VISITA
    public final static String JAVA_NO_EXISTEN_DATOS = "JAVA_NO_EXISTEN_DATOS";
    public final static String JAVA_REGISTRO_ACTUALIZADO = "JAVA_REGISTRO_ACTUALIZADO";
    public final static String JAVA_NO_ATENDER_SERVICIO = "JAVA_NO_ATENDER_SERVICIO";

   //******MVC CONSOLIDADO
    public final static String JAVA_PEDIDOS_DIA = "JAVA_PEDIDOS_DIA";
    public final static String JAVA_MOVIL = "JAVA_MOVIL";
    public final static String JAVA_PEDIDO="JAVA_PEDIDO";
    public final static String JAVA_NO_PEDIDO ="JAVA_NO_PEDIDO";
    public final static String JAVA_PEDI_NOPEDI ="JAVA_PEDI_NOPEDI";
    public final static String JAVA_DEVOLUCION = "JAVA_DEVOLUCION";
    public final static String JAVA_DEVOLUCIONES = "JAVA_DEVOLUCIONES";
    public final static String JAVA_CANJE = "JAVA_CANJE";
    public final static String JAVA_CANJES = "JAVA_CANJES";
    public final static String JAVA_PAGOS = "JAVA_PAGOS";
    public final static String JAVA_ATENCION_NOENVIARA_PEDIDOS = "JAVA_ATENCION_NOENVIARA_PEDIDOS";
    public final static String JAVA_ATENCION_ENVIARA_PEDIDOS ="JAVA_ATENCION_ENVIARA_PEDIDOS";
    public final static String JAVA_ATENCION_NOENVIARA_DEVOLUCION ="JAVA_ATENCION_NOENVIARA_DEVOLUCION";
    public final static String JAVA_ATENCION_ENVIARA_DEVOLUCIONES = "JAVA_ATENCION_ENVIARA_DEVOLUCIONES";
    public final static String JAVA_ATENCION_NOENVIARA_CANJES ="JAVA_ATENCION_NOENVIARA_CANJES";
    public final static String JAVA_ATENCION_ENVIARA_CANJES = "JAVA_ATENCION_ENVIARA_CANJES";
    public final static String JAVA_ATENCION_NOENVIARA_PAGOS = "JAVA_ATENCION_NOENVIARA_PAGOS";
    public final static String JAVA_ATENCION_ENVIARA_PAGOS = "JAVA_ATENCION_ENVIARA_PAGOS";
    
    public final static String JAVA_ATENCION_ENVIARA_TODOS = "JAVA_ATENCION_ENVIARA_TODOS";
    public final static String JAVA_ATENCION_NOENVIARA_TODOS = "JAVA_ATENCION_NOENVIARA_TODOS";
    
    public final static String JAVA_ENVIO_REGISTRADO = "JAVA_ENVIO_REGISTRADO";
    public final static String JAVA_NOATENDIO_ENVIO = "JAVA_NOATENDIO_ENVIO";
    

    //******MVC SINCRONIZAR
    public final static String JAVA_TODO = "JAVA_TODO";
    public final static String JAVA_CLIENTE = "JAVA_CLIENTE";
    public final static String JAVA_PRODUCTOS = "JAVA_PRODUCTOS";
    public final static String JAVA_ATENCION_BORRAR_CLIENTES = "JAVA_ATENCION_BORRAR_CLIENTES";
    public final static String JAVA_ATENCION_BORRAR_PRODUCTOS ="JAVA_ATENCION_BORRAR_PRODUCTOS";

    //******MVC STOCK_LINEA
    public final static String JAVA_STOCK_LINEA = "JAVA_STOCK_LINEA";
    public final static String JAVA_ARTICULO = "JAVA_ARTICULO";

    //******MVCReporteKPI
    public final static String JAVA_INDICADOR= "JAVA_INDICADOR";
    public final static String JAVA_VALOR = "JAVA_VALOR";
    public final static String JAVA_TOTAL_CLIENTES = "JAVA_TOTAL_CLIENTES";
    public final static String JAVA_VISITA_PEDIDO = "JAVA_VISITA_PEDIDO";
    public final static String JAVA_VISITA_NO_PEDIDO = "JAVA_VISITA_NO_PEDIDO";
    public final static String JAVA_EFEC = "JAVA_EFEC";
    public final static String JAVA_TPV = "JAVA_TPV";
    public final static String JAVA_MNT_TTL = "JAVA_MNT_TTL";
    public final static String JAVA_CANT_TTL = "JAVA_CANT_TTL";
    public final static String JAVA_MNT_COBR = "JAVA_MNT_COBR";
    public final static String JAVA_PRODUCTO_EXISTE = "JAVA_PRODUCTO_EXISTE";

    //******MVCResultadoProductoOnline
    public final static String JAVA_PRODUCTO = "JAVA_PRODUCTO";

    //******MVCProductoPedido
    public final static String JAVA_AGREGAR="JAVA_AGREGAR";
    public final static String JAVA_FINALIZAR = "JAVA_FINALIZAR";
    public final static String JAVA_CANT = "JAVA_CANT";
    //public final static String JAVA_TOTAL = "JAVA_TOTAL";
    public final static String JAVA_DES = "JAVA_DES";
    public final static String JAVA_CONFIRMAR_CANCELAR_PEDIDO = "JAVA_CONFIRMAR_CANCELAR_PEDIDO";
    public final static String JAVA_COMPLETAR_DATOS ="JAVA_COMPLETAR_DATOS";
    public final static String JAVA_PED = "JAVA_PED";
    public final static String JAVA_TOT = "JAVA_TOT";

    //******MVCProductoDetalle
    public final static String JAVA_PRECIO = "JAVA_PRECIO";
    public final static String JAVA_NO_PRECIO = "JAVA_NO_PRECIO";
    public final static String JAVA_INGRESE_CANTIDAD = "JAVA_INGRESE_CANTIDAD";
    public final static String JAVA_CANTIDAD_INCORRECTA = "JAVA_CANTIDAD_INCORRECTA";
    public final static String JAVA_PROD_PEDIDO = "JAVA_PROD_PEDIDO";
    public final static String JAVA_PROD_DEVOLUCION = "JAVA_PROD_DEVOLUCION";
    public final static String JAVA_PROD_CANJE = "JAVA_PROD_CANJE";
    public final static String JAVA_PROD_STOCK = "JAVA_PROD_STOCK";
    public final static String JAVA_BUSCAR_X_NOMBRE = "JAVA_BUSCAR_X_NOMBRE";
    public final static String JAVA_PEDIDOS = "JAVA_PEDIDOS";

   //******MVCPedidoOnline
    public final static String JAVA_PEDIDO_NO_DETALLE = "JAVA_PEDIDO_NO_DETALLE";
    public final static String JAVA_CONFIRMAR_FINALIZAR_PEDIDO = "JAVA_CONFIRMAR_FINALIZAR_PEDIDO";
    public final static String JAVA_MONTO_PEDIDO = "JAVA_MONTO_PEDIDO";
    public final static String JAVA_ITEMS_PEDIDO = "JAVA_ITEMS_PEDIDO";

    //******MVCPedidoDetalleOnline
    public final static String JAVA_DETALLE_PEDIDO ="JAVA_DETALLE_PEDIDO";

    //******MVCNoPedidoLista
    public final static String JAVA_NO_PEDIDO2="JAVA_NO_PEDIDO2";
    public final static String JAVA_CONFIRMAR_FINALIZAR_NOPEDIDO = "JAVA_CONFIRMAR_FINALIZAR_NOPEDIDO";

    //******MVCNoPedidoFin
    public final static String JAVA_CONFIRMAR_FINALIZAR_NOPEDIDO2 = "JAVA_CONFIRMAR_FINALIZAR_NOPEDIDO2";
    public final static String JAVA_CONDICION = "JAVA_CONDICION";

    //*************ValidateDevolucionResumeForm
    public final static String JAVA_INGRESAR_MAYOR_CERO = "JAVA_INGRESAR_MAYOR_CERO";

    //*************MVCResumenDevolucion
    public final static String JAVA_CONFIRMAR_CANCELAR_DEVOLUCION = "JAVA_CONFIRMAR_CANCELAR_DEVOLUCION";
    public final static String JAVA_MOTIVO_DEVOLUCION = "JAVA_MOTIVO_DEVOLUCION";
    public final static String JAVA_SELECCION_MOTIVO_DEVOLUCION = "JAVA_SELECCION_MOTIVO_DEVOLUCION";
    public final static String JAVA_PRODUCTO_MOTIVO_EXISTEN = "JAVA_PRODUCTO_MOTIVO_EXISTEN";
    public final static String JAVA_CONFIRMAR_FINALIZAR_DEVOLUCION = "JAVA_CONFIRMAR_FINALIZAR_DEVOLUCION";
    public final static String JAVA_ITEMS_DEVOL = "JAVA_ITEMS_DEVOL";
    public final static String JAVA_FEC_VCMTO = "JAVA_FEC_VCMTO";
    public final static String JAVA_OBS = "JAVA_OBS";
    public final static String JAVA_INGRESE_FECHA = "JAVA_INGRESE_FECHA";
    public final static String JAVA_FECHA_INCORRECTA = "JAVA_FECHA_INCORRECTA";
    public final static String JAVA_PAGO = "JAVA_PAGO";
    public final static String JAVA_PAGO_COBR = "JAVA_PAGO_COBR";
    
    public final static String JAVA_FECHA = "JAVA_FECHA";
    public final static String JAVA_SALDO = "JAVA_SALDO";
    public final static String JAVA_DOC = "JAVA_DOC";
    public final static String JAVA_COBRANZA = "JAVA_COBRANZA";
    public final static String JAVA_COBRANZAS = "JAVA_COBRANZAS";
    public final static String JAVA_NO_COBRANZAS = "JAVA_NO_COBRANZAS";
    public final static String JAVA_BANCOS = "JAVA_BANCOS";
    public final static String JAVA_DETALLE_COBRANZA = "JAVA_DETALLE_COBRANZA";
    public final static String JAVA_INGRESE_MONTO = "JAVA_INGRESE_MONTO";
    public final static String JAVA_INGRESAR_MONTO_MAYOR_CERO = "JAVA_INGRESAR_MONTO_MAYOR_CERO";
    public final static String JAVA_MONTO_MAYOR_SALDO = "JAVA_MONTO_MAYOR_SALDO";
    public final static String JAVA_MXPAG = "JAVA_MXPAG";
    public final static String JAVA_PAGAD = "JAVA_PAGAD";
    public final static String JAVA_DOCUMENTO = "JAVA_DOCUMENTO";
    public final static String JAVA_DOCUMENTO_TITULO = "JAVA_DOCUMENTO_TITULO";
    public final static String JAVA_NUMERO = "JAVA_NUMERO";
    public final static String JAVA_SEGURO_GRABAR = "JAVA_SEGURO_GRABAR";
    public final static String JAVA_FINALIZAR_COBRANZA = "JAVA_FINALIZAR_COBRANZA";
    
    
    public final static String JAVA_CLIENTES = "JAVA_CLIENTES";
    public final static String JAVA_CLIENTES_ONLINE = "JAVA_CLIENTES_ONLINE";
    public final static String JAVA_INGRESE_CODIGO = "JAVA_INGRESE_CODIGO";
    public final static String JAVA_COBRAR = "JAVA_COBRAR";
    public final static String JAVA_DIRECCION = "JAVA_DIRECCION";
    public final static String JAVA_NOMBRECLIENTE = "JAVA_NOMBRECLIENTE";
    public final static String JAVA_DEUDA = "JAVA_DEUDA";
    public final static String JAVA_GIRO = "JAVA_GIRO";
    public final static String JAVA_COD_TCLIE = "JAVA_COD_TCLIE";
    public final static String JAVA_FUERARUTA = "JAVA_FUERARUTA";
    public final static String JAVA_BUSCAR_CLIENTES = "JAVA_BUSCAR_CLIENTES";
    public final static String JAVA_PRODUCTO_EXISTE_CANJE = "JAVA_PRODUCTO_EXISTE_CANJE";
    public final static String JAVA_CONFIRMAR_CANCELAR_CANJE = "JAVA_CONFIRMAR_CANCELAR_CANJE";
    public final static String JAVA_MOTIVO_CANJE = "JAVA_MOTIVO_CANJE";
    public final static String JAVA_SELECCION_MOTIVO_CANJE = "JAVA_SELECCION_MOTIVO_CANJE";
    public final static String JAVA_CONFIRMAR_FINALIZAR_CANJE = "JAVA_CONFIRMAR_FINALIZAR_CANJE";
    public final static String JAVA_ITEMS_CANJE = "JAVA_ITEMS_CANJE";
    public final static String JAVA_SIN_COBERTURA = "JAVA_SIN_COBERTURA";
    public final static String JAVA_DOC_COBR = "JAVA_DOC_COBR";
    public final static String JAVA_SINCRONIZAR_CLIENTES = "JAVA_SINCRONIZAR_CLIENTES";
    public final static String JAVA_CLIENTE_NOEXISTE = "JAVA_CLIENTE_NOEXISTE";
    public final static String JAVA_NOCOBERTURA_ENVIO = "JAVA_NOCOBERTURA_ENVIO";
    public final static String JAVA_DEVOLUCION_REGISTRADA = "JAVA_DEVOLUCION_REGISTRADA";
    public final static String JAVA_NOATENDIO_DEVOLUCION = "JAVA_NOATENDIO_DEVOLUCION";
    public final static String JAVA_ARTICULO_EXISTE_DEVOLUCION = "JAVA_ARTICULO_EXISTE_DEVOLUCION";
    public final static String JAVA_NOEXISTE = "JAVA_NOEXISTE";
    public final static String JAVA_SIN_COBERTURA_CONSLTA = "JAVA_SIN_COBERTURA_CONSLTA";
    public final static String JAVA_ARTICULO_EXISTE_PEDIDO = "JAVA_ARTICULO_EXISTE_PEDIDO";
    public final static String JAVA_ARTICULO_NO_PRECIO = "JAVA_ARTICULO_NO_PRECIO";
    public final static String JAVA_ARTICULO_NO_PRECIO_ASIGNADO = "JAVA_ARTICULO_NO_PRECIO_ASIGNADO";
    public final static String JAVA_PEDIDO_REGISTRADO = "JAVA_PEDIDO_REGISTRADO";
    public final static String JAVA_NOPEDIDO_REGISTRADO = "JAVA_NOPEDIDO_REGISTRADO";
    public final static String JAVA_NOATENDIO_PEDIDO = "JAVA_NOATENDIO_PEDIDO";
    public final static String JAVA_NOCOBERTURA_SINCRONIZAR = "JAVA_NOCOBERTURA_SINCRONIZAR";
    public final static String JAVA_CANJE_REGISTRADO = "JAVA_CANJE_REGISTRADO";
    public final static String JAVA_NOATENDIO_CANJE = "JAVA_NOATENDIO_CANJE";
    public final static String JAVA_ARTICULO_EXISTE_CANJE = "JAVA_ARTICULO_EXISTE_CANJE";
    public final static String JAVA_PAGO_REGISTRADO = "JAVA_PAGO_REGISTRADO";
    public final static String JAVA_MENU_PRIN = "JAVA_MENU_PRIN";
    public final static String JAVA_MENU = "JAVA_MENU";

    //MVCAYUDA
   public final static String JAVA_CONTENIDO_AYUDA = "JAVA_CONTENIDO_AYUDA";
   
   public final static String  JAVA_CON_PEDIDO = "JAVA_CON_PEDIDO";
   public final static String  JAVA_POR_VISITAR = "JAVA_POR_VISITAR";
   public final static String  JAVA_VISITADO = "JAVA_VISITADO";



    public XMLListener xmlListener;
    public RMSIdiomaManager rms = new RMSIdiomaManager();
    private final int RMSCANTIDAD = 100;
    public ListenerIdioma listener;

    private IdiomaManager() {
    }

    public static IdiomaManager getInstance() {
        return bean;
    }

    public boolean isDatos() {
        try {
            return rms.cantidadObjectLista(RMSCANTIDAD) > 0;
        } catch (Exception ex) {
            ex.printStackTrace();
            return false;
        }
    }

    public synchronized  void registrarSincronizacion(MensajeHttp mensajeHttp) throws Exception {
        try{
        
        procesarSincronizarData(mensajeHttp);

        processDownloadedData();

        levantarIdiomaMemoria();
        
        listener.respuesta( );
        
        }catch(Exception e){e.printStackTrace();}

    }

    public void levantarIdiomaMemoria() throws Exception{
        rms.getlistaIdioma(); 
    }

    private void procesarSincronizarData(MensajeHttp mensajeHttp) throws Exception {
        //#debug
//        System.out.println("data.procesarSincronizar");

        InputStream input = mensajeHttp.getInput();

        xmlListener.print("Espere por favor ...");

        byte[] bufferData = new byte[5120]; //10240 //5120
        int amountData = 0;
        try {
            RecordStore.deleteRecordStore("RS_DOWNLOAD_TMP");
        } catch (RecordStoreException ex) {
//            System.out.println("not found " + ex.getMessage());
        }

        RecordStore rs = null;

        try {

            rs = RecordStore.openRecordStore("RS_DOWNLOAD_TMP", true);

            while ((amountData = input.read(bufferData)) != -1) {

                rs.addRecord(bufferData, 0, amountData);
            }



        } catch (RecordStoreException ex) {
            //   ex.printStackTrace();
            throw ex;
        } catch (IOException ex) {
            //  ex.printStackTrace();
            throw ex;

        } finally {
            try {
                if (rs != null) {
                    rs.closeRecordStore();
                    rs = null;
                }
                bufferData = null;
            } catch (Exception ex) {
                //  System.out.println("final de error = " + ex.getMessage());
            }
        }

    }

    private void processDownloadedData() throws Exception {
        RecordStore rs = null;
        InputStream input = null;
        try {

            rs = RecordStore.openRecordStore("RS_DOWNLOAD_TMP", true);
            input = new RecordStoreInputStream(rs);
            guardarTablas(input);

        } catch (Exception ex) {
            throw ex;
        } finally {
            try {
                if (rs != null) {
                    rs.closeRecordStore();
                    rs = null;
                }
                if (input != null) {
                    input.close();
                    input = null;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            try {
                RecordStore.deleteRecordStore("RS_DOWNLOAD_TMP");
            } catch (RecordStoreException e) {
                e.printStackTrace();
            }
        }
    }

    private void guardarTablas(InputStream input) throws Exception {

       
        ZipInputStream zipInput = new ZipInputStream(input);
        ZipEntry ze = zipInput.getNextEntry();

        DataInputStreamX dataInput = new DataInputStreamX(zipInput);

        String recordStoreName;
        int recordStoreSize;

        RecordStore rs = null;

        try {

            while (true) {

                recordStoreName = dataInput.readString();
                recordStoreSize = dataInput.readInt();

                System.out.println("recordStoreName=" + recordStoreName + "|");
                xmlListener.print(recordStoreName + " size=" + recordStoreSize);

                rs = RecordStore.openRecordStore(recordStoreName, true);
                saveRecordStore(dataInput, recordStoreSize, rs);

                System.out.println("\t-> RS records: " + rs.getNumRecords());

                rs.closeRecordStore();
                rs = null;

                System.gc();
            }

        } catch (Exception ex) {
            System.out.println(" data terminada: " + ex);

        } finally {
            if (rs != null) {
                rs.closeRecordStore();
            }
        }


        zipInput.closeEntry();

        zipInput.close();

        zipInput = null;

    }

    private void saveRecordStore(DataInputStreamX input, int size, RecordStore rs) throws Exception {
//        System.out.println("saveRecordStore= " + size);
        byte[] buffer = null;
        int dataReaded = 0;
        int bufferSize = 0;

        buffer = new byte[100000];

        while (dataReaded < size) {

            bufferSize = input.readInt();

            input.readFully(buffer, 0, bufferSize);

            rs.addRecord(buffer, 0, bufferSize);

            dataReaded = dataReaded + bufferSize;
            dataReaded += 4;


        }
        buffer = null;

        System.gc();

    }

    public String getMensaje(String param) {
 
//        Iterator iter = hasMap.elements();
//        while(iter.hasNext())
//        {
//            //System.out.println("" + iter.next( ));
//
//        }

        Object cadena = hasMap.get(param);
        /*
        if(cadena==null)
            System.out.println("IdiomaManager.getMensaje: " + "null");
        else
            System.out.println("IdiomaManager.getMensaje: " + cadena.toString());
        */
        return cadena == null ? "" : cadena.toString();

    }

   
}
